package books.in_action.lambda

/**
 * 函数式接口
 */
fun main(args: Array<String>) {

    /**
     * kotlin调用Java匿名内部类，如果匿名内部类只有一个方法，使用lambda.
     * 方法只有一个参数或者无参可以省略参数和->
     * 一个参数可以使用默认参数it
     * 如果多个参数，其中未使用的参数可以用_替代
     * 如果使用lambda，lambda作用域内没有访问任何来自定义它函数的变量，则匿名内部类只有一个实例
     */
    Button().setOnClickLsitener { _, _ ->
    }

    /**
     * 如果显式匿名内部类，每次都会创建不一样的实例
     */
    Button().setOnClickLsitener(object :OnClickListener{
        override fun click(button: Button?, num: Int) {

        }
    })




}
